310 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3:ZTEST=0
312 FOR I= 1 TO 26:ZTEST=ZK(I)+ZTEST:NEXT
315 OPEN FILE$ AS #4 LEN = 356
320 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
322 IF Y$="G" OR Y$="C" THEN NRED=999:YNEW=1:GOSUB 6000:GOTO 1320
561 Y$=INKEY$:IF Y$="" THEN 561 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
563 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 560
600 GOSUB 630:ADD=0:ED$=""
601 COLOR 3,0,1:LOCATE 12,22:PRINT "Do you want to create a backup file?":LOCATE 14,33:PRINT "<Y>es or <N>o.":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0
603 GOSUB 560
604 IF Y$="N" THEN CLS:RETURN ELSE CLOSE:CHAIN "ADFILES",10,ALL
1035 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1035 ELSE 1040
1040 IF LEN(Y$)=2 THEN 1055 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1042 IF Y$="U" THEN 1090
1045 IF Y$="E" THEN 3000
1050 IF Y$="A" THEN 1320 ELSE GOSUB 35040:GOTO 1033
1055 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
1060 IF ASC(RIGHT$(Y$,1))=113 THEN 500 ELSE 990
1090 ED$="CONT"
1100 MS=0:GOSUB 9000
1110 COLOR 3,0,1:LOCATE 1,1:PRINT "EDIT: UPDATE ... ":LOCATE 3,28 :COLOR 12,0:PRINT "ENTER: SURNAME & ";ARR$:COLOR 3,0:LOCATE 5,13:PRINT "(full name or any part starting from left most character)"
1115 LOCATE 4,18:PRINT "(Be sure the file has been sorted by SURNAME)"
1125 LOCATE 7,39:PRINT "OR":LOCATE 8,28:PRINT ARR$;" return to EDIT menu"
1130 LOCATE 10,6:PRINT "If corrections are necessary, you must RENTER each entry completely!"
1140 LOCATE 12,10:PRINT "If you want to add to the notes, start the addition with [&]":LOCATE 13,10:PRINT "OR advance to the point where you want to insert or add using ";CHR$(26):LOCATE 14,10:PRINT "then type in new data."
1160 LOCATE 16,20:PRINT "The [@] character will erase the entry"
1170 COLOR 15,0:LOCATE 20,32: INPUT "SURNAME ... ",S$:MM=LEN(S$):IF MM=0 THEN 960
1180 IF NN=0 THEN 960:GOSUB 9000
1185 GOSUB 3500:GOSUB 5000
1186 GET #4,NN+1:K=VAL(V$(16)):K1=K:II=1:I1=0
1187 IF S$="!" THEN 1190 ELSE QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 1270 ELSE K=ZK(QK-64)
1188 IF K=0 THEN 1270
1190 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:I1=I1+1:TEST=0:GET #4, K
1195 IF S$="!" THEN 1220
1200 IF S$<>MID$(V$(2),5,MM) THEN 1245
1220 LOCATE 1,70:PRINT SPACE$(9):GOSUB 2550
1225 MS=1:IF FRE(1)<800 THEN CHAIN "adedit.bas",1230,ALL
1227 IF Y$="r" OR Y$="R" THEN 960
1230 IF Y$="I" THEN K=VAL(V$(15)) ELSE 1233
1232 IF II=1 THEN II=NN:GOTO 1250 ELSE II=II-1:GOTO 1190
1233 IF (Y$="N" OR Y$="n" OR Y$="Q") THEN K=VAL(V$(14)) ELSE 1235
1234 IF II=NN THEN II=1:GOTO 1250 ELSE II=II+1 :GOTO 1250
1235 IF Y$="G" THEN K=K1:II=1:GOTO 1190
1236 IF Y$="=" THEN GOSUB 1500:GOTO 1190
1238 IF Y$="-" THEN GOSUB 1400:GOTO 1225
1239 IF Y$="+" THEN GOSUB 1400:GOTO 1225
1240 IF Y$="O" THEN GET #4,K1:K=VAL(V$(15)):II=NN:GOTO 1190
1245 IF ZTEST=26 THEN K=VAL(V$(14)):GOTO 1255
1247 IF ASC(MID$(V$(2),5,1))<>QK THEN 1260 ELSE K=VAL(V$(14))
1250 IF S$="!" THEN 1190
1255 IF I1=NN THEN 1260 ELSE 1190
1260 IF MS=1 THEN 1280
1270 LOCATE 22,1:PRINT "Person is not in the address book. Try again. Hit any key to continue."
1275 Y$=INKEY$:IF Y$="" THEN 1275 ELSE 1090
1280 CLS:LOCATE 12,25:PRINT "ANY MORE CHANGES? <Y> or <N> ":COLOR 15,0:LOCATE 12,45:PRINT "Y":LOCATE 12,52:PRINT "N":COLOR 3,0:GOSUB 560
1285 IF Y$="N" THEN ED$="":GOTO 970
1290 IF Y$="Y" OR Y$="y" THEN 1090
1320 GOSUB 9000
1330 S$="":ED$=" ":ADD=999:I=NN+1:GOSUB 2780
1350 GOSUB 2230
1360 NN=I-1:ADD=0:GOSUB 5100:GOTO 970
1390 CLS
1400 IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1410 NII=ABS(NI):FOR NF = 1 TO NII
1415 DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 1470
1420 IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 1425 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
1425 IF II=<0 THEN II=NN+II
1426 IF II>NN THEN II=ABS(II-NN)
1430 GOSUB 2550:NEXT
1455 LOCATE 23,20:PRINT SPACE$(40)
1460 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
1470 LOCATE 23,20:PRINT SPACE$(40)
1480 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
1500 IF NUM=<0 OR NUM>NN THEN GOSUB 35040:LOCATE 23,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;" ";SPACE$(5):ELSE 1505
1501 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 23,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
1505 IF NUM=<0 OR NUM>NN THEN 1500 ELSE LOCATE 23,20:PRINT SPACE$(50)
1510 IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 1590
1515 IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 1550
1517 K=ZK(27):NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
1520 FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
1525 NEXT
1540 IF K=ZK(27) AND NZ=INT(NN/10) THEN K=ZK(36):NZ=10*NZ
1550 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1560 FOR II=NZ TO NUM-1 :GET #4,K:K=VAL(V$(14)):NEXT
1570 LOCATE 1,70:PRINT SPACE$(9)
1580 RETURN
1590 LOCATE 23,20:PRINT SPACE$(50)
1595 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1600 FOR II=NZ TO NUM+1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
1610 LOCATE 1,70:PRINT SPACE$(9):RETURN
1940 IF ERL=4010 THEN CLOSE #2: I=1:CLS:LOCATE 10,16:COLOR 14,0:PRINT "The file containing keys used in NOTES is empty":LOCATE 18,30:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35010:COLOR 3,0 ELSE 1947
1941 Y$=INKEY$:IF Y$="" THEN 1941
1942 RESUME 350
1947 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
1950 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL. LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 15,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
1960 IF ERR = 61 THEN GOTO 390
1965 IF NN=0 AND ERL=325 THEN CLS:COLOR 0,7:LOCATE 10,33:PRINT "FILE IS EMPTY!":LOCATE 12,28:PRINT "RETURNING TO MAIN MENU.":FOR I= 1 TO 200:NEXT:COLOR 3,0:RUN"ADMAIN.BAS"
2410 IF RIGHT$(A12$,2)="@ " OR LEFT$(A12$,1)="_" THEN A12$=""
2420 D$(13)=A12$:COLOR 3,0:LOCATE 3,1: PRINT "GREETING:";SPACE$(71):IF ED$="CONT" THEN COLOR 2,0 ELSE COLOR 10,0
2425 LOCATE 3,18:PRINT D$(13)
2430 FOR J= 1 TO 11:L=W(J)
2434 IF J<=8 THEN JJ=J+3 ELSE JJ=J+4
2435 IF L>=6 AND L<=11 THEN DEF SEG = &H40:POKE &H17,&H40
2440 COLOR 3,0:LOCATE JJ,1: PRINT Q$(J);" ";:COLOR 2,0:PRINT B$(J):LOCATE JJ,18:K=JJ:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(L)=B$(J) ELSE D$(L)=C1$
2445 IF L>=6 AND L<=10 THEN DEF SEG = &H40:POKE &H17,&H0
2450 IF RIGHT$(D$(L),1)="@" OR RIGHT$(D$(L),2)="__" THEN D$(L)=""
2455 IF D$(L)<>"" AND INSTR(1,ST$,D$(L))<>0 THEN RETURN
2456 IF J=8 THEN LOCATE JJ+1,1:PRINT Q$(13)
2457 IF LEFT$(D$(L),3)="MM-" THEN D$(L)=""
2460 NEXT
2470 TEST=1
2520 COLOR 3,0:LOCATE 16,1: PRINT Q$(12);" ";:COLOR 2,0:PRINT B$(12):COLOR 11,0:LOCATE 16,18:K=16:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(9)=B$(12) ELSE D$(9)=C1$
2525 M=LEN(D$(9)):M=M-1
2526 IF LEFT$(D$(9),1)="&" THEN D$(9)=B$(12)+" "+RIGHT$(D$(9),M)
2530 IF RIGHT$(D$(9),1)="@" OR RIGHT$(D$(9),2)="__" THEN D$(9)=""
2533 GOTO 2540
2535 FOR J=J1 TO 12:L=W(J):D$(L)=B$(J):NEXT
2540 TEST=1:GOSUB 3500:GOSUB 5000:II=I
2550 IF ED$<>"CONT" THEN NN=I
2560 COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(3):IF (ED$="CONT" AND TEST=0) THEN GOSUB 5400 ELSE GOSUB 5300
2570 IF Y$="+" OR Y$="-" THEN RETURN
2635 COLOR 3,0:DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 35040
2636 Y$=INKEY$:IF Y$="" THEN 2636
2637 DEF SEG=&H40:POKE &H17, 0
2638 IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
2639 IF Y$="Y" OR Y$="y" THEN I=II:GOTO 2660
2640 IF S$<>"!" THEN 2655 ELSE IF Y$="r" OR Y$="R" THEN 2700
2641 IF Y$="=" THEN COLOR 14,0:LOCATE 23,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 2643
2642 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:GOTO 2700
2643 IF Y$="G" THEN JJ=I:I=0:GOTO 2700
2644 IF Y$="O" THEN JJ=I:I=NN-1:GOTO 2700
2645 IF Y$="I" THEN JJ=I:I=I-2:GOTO 2700
2646 IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 2648
2647 IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 2652
2648 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
2649 INPUT " ",NI:JJ=I:I=NI:NI=ABS(NI):COLOR 3,0
2650 IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE. 1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JJ:GOTO 2636
2651 DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:GOTO 2700
2652 IF (Y$="N" OR Y$="n" OR Y$="Q") THEN JJ=I:GOTO 2700 ELSE 2635
2655 IF Y$="N" OR Y$="n" THEN JJ=I:GOTO 2700 ELSE 2635
2660 IF ED$<>"CONT" OR TEST <>0 THEN FOR J= 1 TO 13:K=W(J):B$(J)=D$(K):NEXT:GOTO 2670
2665 FOR J = 1 TO 13:K=W(J):B$(J)=MID$(V$(K),5,VAL(V$(K))):NEXT
2670 GOSUB 9000:LOCATE 22,13
2680 PRINT "Enter corrections or ";ARR$;" if no corrections are necessary":IF ED$<>"CONT" THEN 2260 ELSE LOCATE 23,25:PRINT "Hit <End Key> to end correction"
2690 GOTO 2260
2700 IF (ED$="CONT" AND TEST=1) THEN Z(1)=VAL(V$(16)):Z(2)=VAL(V$(15)):Z(3)=VAL(V$(14)):GOSUB 5200:TEST=0
2710 IF RIGHT$(D$(8),2)="YY" THEN D$(8)=""
2740 IF ED$="CONT" THEN RETURN
2750 Z(1)=I:Z(2)=I-1:Z(3)=I+1:IF I=KNN THEN GOSUB 5500:GOTO 2755
2752 GOSUB 5200
2755 I=I+1:IF FRE(1)<1000 THEN CHAIN "adedit.bas",2775,ALL
2770 GOTO 2245
2775 GOSUB 6000:GOTO 1350
2780 GOSUB 2910
2790 PRINT "THE FILES ARE CURRENTLY SET UP TO RECEIVE AS FOLLOWS: ":PRINT
2800 COLOR 14,0,1
2810 GOSUB 2850
2820 PRINT : PRINT "For GREETING you can combine TWO numbers (1-6). EX: 23 = MR. and MRS.":PRINT TAB(14);"(Available: any combination)
2825 PRINT :PRINT "Sort the Records by Surname after entering new records."
2830 PRINT:PRINT "To EXIT and RETURN to EDIT menu, Type `KEY F2' ":LOCATE ,29:COLOR 1,7,1:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35040
4086 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35030
4087 Y$=INKEY$:IF Y$="" THEN 4087
4090 RETURN 350
5000 REM
5010 COLOR 3,0:LOCATE 18,1:PRINT "Corrections? <Y>es.":COLOR 14,0:LOCATE 18,16:PRINT "Y":COLOR 3,0
5020 IF S$="!" THEN LOCATE 19,15:PRINT "<PgDn> or <N>o - next record.":LOCATE 19,26:COLOR 14,0:PRINT "N" :LOCATE 19,16:PRINT "PgDn" ELSE LOCATE 19,15:PRINT "<N>o.":LOCATE 19,16:COLOR 14,0:PRINT "N"
5030 IF S$<> "!" THEN RETURN ELSE COLOR 3,0:LOCATE 20,15:PRINT "<PgUp> - previous record":LOCATE 21,15:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE 20,16:PRINT "PgUp":LOCATE 21,16:PRINT "+"
10035 IF ED$<>"CONT" THEN C$="":LSS%=LS%(J)+1:GOTO 10050
10040 C$=INKEY$:IF C$="" THEN 10040
10043 IF ASC(C$)=13 THEN C1$="":RETURN
10045 IF LEN(C$)=2 AND RIGHT$(C$,1)="O" THEN J1=J:RETURN 2535
10046 IF LEN(C$)=2 AND RIGHT$(C$,1)="M" THEN C$="":LOCATE K,19 ELSE IF LEN(C$)=2 THEN C$="":C1$="":RETURN ELSE PRINT C$;
10050 COLOR 10,0:LINE INPUT C1$:COLOR 11,0:IF LEN(C1$)>LS%(J) THEN GOSUB 10110:PRINT "Input exceeds ";LS%(J);" characters. Enter [Y] to reenter OR ";ARR$;" to continue" ELSE GOTO 10080
10060 Y$=INKEY$:IF Y$="" THEN 10060
10070 IF Y$="y" OR Y$="Y" THEN LOCATE K+1,1:PRINT SPACE$(80):GOTO 10015
10075 LOCATE K+1,1:PRINT SPACE$(80)
10080 C1$=C$+C1$:RETURN
10110 FOR SD%=1 TO 3:SOUND 1000*SD%,1:NEXT:FOR SD%=3 TO 1 STEP -1:SOUND 1000*SD%,1:NEXT:RETURN